package com.victor.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.victor.dao.QuestionDao;
import com.victor.entity.Advertisement;
import com.victor.entity.Answer;
import com.victor.entity.Comment;
import com.victor.entity.Fans;
import com.victor.entity.FollowQuestion;
import com.victor.entity.FollowUser;
import com.victor.entity.Label;
import com.victor.entity.Question;
import com.victor.entity.User;
import com.victor.service.QuestionService;

@Service
public class QuestionServiceimpl implements QuestionService {

	@Autowired
	private QuestionDao questionDao;

	// 提交提问
	@Override
	public boolean submitQuestion(Question question) {
		return questionDao.submit(question) > 0 ? true : false;
	}

	// 查询提问列表
	@Override
	public List<Question> getAllList() {
		return questionDao.getall();
	}

	// 通过id查询提问详情
	@Override
	public Question findByid(int qid) {
		return questionDao.findByid(qid);
	}

	// 查询问题列表(mobile)
	@Override
	public List<Question> getHomepage() {
		return questionDao.getm_all();
	}

	// 粉丝列表
	@Override
	public List<Fans> getFansList(String userid) {
		return questionDao.getFansList(userid);
	}

	// 采纳答案
	@Override
	public boolean adoptAnswer(String a_id) {
		return questionDao.adoptAnswer(a_id) > 0 ? true : false;
	}

	// 通过q_id查询该提问是否有采纳的答案
	@Override
	public List<Answer> ifadoptAnswer(String q_id) {
		return questionDao.ifadoptAnswer(q_id);
	}

	// 回答提问
	@Override
	public boolean answerQuestion(Answer answer) {
		return questionDao.answerQuestion(answer) > 0 ? true : false;
	}

	// 发布评论(单文字)
	@Override
	public boolean releaseComment(Comment comment) {
		return questionDao.releaseComment(comment) > 0 ? true : false;
	}

	// 我的--关注--问题(我关注的问题)
	@Override
	public List<FollowQuestion> getFollowQuestion(String userid) {
		return questionDao.getFollowQuestion(userid);
	}

	// 我的--关注--用户(我关注的用户)
	@Override
	public List<FollowUser> getFollowUser(String userid) {
		return questionDao.getFollowUser(userid);
	}

	// 我的--提问(查询所有我的提问)
	@Override
	public List<Question> getQuestionByMe(String userid) {
		return questionDao.getQuestionByMe(userid);
	}

	// 我的--回答(查询我回答过的提问)
	@Override
	public List<Question> getAnswersByMe(String userid) {
		return questionDao.getAnswersByMe(userid);
	}

	// 获取广告列表
	@Override
	public List<Advertisement> getAdvertisements() {
		return questionDao.getAdvertisements();
	}

	// 获取某条回答的评论列表(时间排序)
	@Override
	public List<Comment> getCommentByAnswerId(String a_id) {
		return questionDao.getCommentByAnswerId(a_id);
	}

	// 待解答页(查询所有没有回答的提问)
	@Override
	public List<Question> getQuestionsToNoAnswers() {
		return questionDao.getQuestionsToNoAnswers();
	}

	// 用户页(查询用户信息和发布的所有提问)
	@Override
	public List<Question> getAllQuestionByUserid(String userid) {
		return questionDao.getAllQuestionByUserid(userid);
	}

	// 模糊查询(返回提问列表 和 回答人数)
	@Override
	public List<Question> likeQuery(String str) {
		return questionDao.likeQuery(str);
	}

	// 修改个人信息
	@Override
	public boolean updatePersonalData(User user) {
		return questionDao.updatePersonalData(user) > 0 ? true : false;
	}

	// 通过userid查询user表中是否存在该用户
	@Override
	public User getUserByUserid(String userid) {
		return questionDao.getUserByUserid(userid);
	}

	// user表中不存在该用户 则插入
	@Override
	public boolean insertPersonalData(User user) {
		return questionDao.insertPersonalData(user) > 0 ? true : false;
	}

	// 通过a_id查询回答信息
	@Override
	public Answer findByidToAnswer(String a_id) {
		return questionDao.findByidToAnswer(a_id);
	}

	// 查询提问列表(日期筛选)
	@Override
	public List<Question> getQuestionBySearch(String starttime, String endtime, String tiaojian, String[] labels) {
		return questionDao.getQuestionBySearch(starttime, endtime, tiaojian, labels);
	}

//	 存入标签
	@Override
	public void addLable(String label) {
//		通过lable去表中查询是否有该标签，如果有  数量加1 如果没有  添加  数量为1
		Label label_data = questionDao.selectLabel(label);
		if (label_data != null) {
			label_data.setNumber(label_data.getNumber() + 1);
//			数量加1
			questionDao.updateLabelNumber(label_data);
		} else {
//			添加  数量为1
			questionDao.insertLabelNumber(label);
		}
	}

	// 获取热门标签
	@Override
	public List<Label> getAllLable() {
		return questionDao.getAllLable();
	}

	// 修改
	@Override
	public boolean update(Question question) {
		return questionDao.update(question);
	}

	// 批删
	@Override
	public boolean batchDelete(int[] ids) {
		return questionDao.batchDelete(ids);
	}

}
